<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原型中的constructor</title>
</head>
<body>
    <script>
        function User(name){
            this.name = name;
        }
        
        // User的prototype中既有__proto__又有constructor(构造器)
        console.log(User.prototype.constructor == User);

        // 可以使用构造器创建对象
        let lisi = new User.prototype.constructor("李四");
        console.log(lisi);


        // 给User的prototype添加一个方法
        User.prototype.show = function(){
            console.log(this.name);
        }
        lisi.show();


        // 给User的prototype添加多个方法
        User.prototype = {
            // 这个方法是重新创建了一个prototype，里面没有constructor，所以必须把constructor添加进来，否则实例化的时候找不到constructor
            constructor:User,
            test:function(){
                console.log("我是test方法");
            },
            hi:function() {
                console.log("我是hi方法");
            }
        };
        let zhangsan = new User.prototype.constructor("张三");
        zhangsan.test();
    </script>
</body>
</html>